#ifndef creole_alt_header
#define creole_alt_header

#include "regex_base.h"
#include "result.h"
#include <vector>

class alt : public regex_base
{
     friend class regex_base;

     std::vector<regex_base*> options;

     regex_base* copy() const;

     public:
     match_result match(const std::string&) const;
     ~alt();
};

class range : public regex_base
{
     char low;
     char high;

     public:
     range(char a, char b) : low(a), high(b) {}
     regex_base* copy() const;
     match_result match(const std::string&) const;
};

#endif
